OSI 7계층과 TCP/IP 4/5계층에서의 클라이언트-서버 연결 과정
클라이언트와 서버가 네트워크에서 연결을 만드는 과정에서는 다양한 계층의 프로토콜과 하드웨어가 함께 작동하여, 신뢰성 있고 안전하며 효율적인 통신이 이루어집니다. OSI 7계층과 TCP/IP 4/5계층 각각의 관점에서, 그리고 관련 하드웨어 측면까지 최대한 설명해보겠습니다.
1. OSI 7계층: 클라이언트와 서버가 어떻게 연결되는가
OSI(Open Systems Interconnection) 모델은 네트워크 동작을 7개의 계층으로 구분합니다. 각 계층은 연결 설정과 데이터 송수신에서 고유의 역할을 합니다.
각 계층에서 연결에 관여하는 역할
-
1계층: 물리 계층(Physical Layer)
- 실제로 0, 1 비트를 물리적 매체를 통해 전송.
- 하드웨어: 네트워크 케이블(이더넷, 광케이블), 네트워크 카드(NIC), 스위치, 허브, 무선랜 모듈 등
- 클라이언트의 NIC가 디지털 데이터를 전기/광/무선 신호로 변환, 케이블이나 무선으로 서버의 NIC에게 전달.
-
2계층: 데이터링크 계층(Data Link Layer)
- 신호를 프레임으로 패키징하고, MAC 주소로 물리적 주소지정.
- 하드웨어: NIC, 스위치 등
- 이더넷 프레임 생성(소스/목적지 MAC 주소 지정).
-
3계층: 네트워크 계층(Network Layer)
- 논리적 주소(IP) 할당 및 패킷 라우팅.
- 하드웨어: 라우터가 IP 패킷을 다른 네트워크로 전달.
- 패킷의 최종 목적지까지 최적 경로 계산.
-
4계층: 전송 계층(Transport Layer)
- 신뢰성 있는 연결 제공, 데이터 흐름 제어.
- TCP는 이 계층에서 3-way handshake 수행:
- 클라이언트가 SYN(연결 요청) 전송
- 서버가 SYN-ACK(응답)
- 클라이언트가 ACK(확인) 전송 — 연결 성립
- 이로써 데이터 전송을 위한 논리적 연결이 맺어짐.
-
5계층: 세션 계층(Session Layer)
- 세션(연결)의 생성·유지 및 종료 관리
- 체크포인트, 복구 기능 제공(중간단계 동기화)
-
6계층: 표현 계층(Presentation Layer)
- 데이터 포맷 변환, 암호화/복호화, 압축 수행
-
7계층: 응용 계층(Application Layer)
- 사용자 응용프로그램(웹 브라우저, 메일 등)에 네트워크 서비스 제공
- 클라이언트가 HTTP GET 등 요청을 생성, 서버가 응답
요약 (OSI 관점의 연결 과정 흐름)
- 하드웨어가 먼저: 클라이언트와 서버의 NIC 및 케이블이 신호/프레임을 물리적으로 송신, 스위치가 LAN내 프레임 전달, 라우터가 네트워크 간 패킷 라우팅.
- 논리 주소/전송: IP주소로 장치 식별, TCP가 핸드셰이크로 신뢰성 보장.
- 세션 관리: OS가 세션 유지 및 관리.
- 응용 처리: 응용프로그램이 직접 데이터 송수신.
2. TCP/IP 모델(4계층 또는 5계층)에서의 클라이언트-서버 연결
TCP/IP 모델은 OSI에 비해 좀 더 단순하고 실제 네트워크 구현에 가까운 4계층 또는 5계층 구조를 사용합니다.
| TCP/IP 계층 | 해당하는 OSI 계층 | 연결에서의 주요 역할 |
|---|---|---|
| 응용 계층 | 5~7 | 사용자 앱/프로토콜(HTTP, FTP 등) 처리 |
| 전송 계층 | 4 | TCP 핸드셰이크로 신뢰성 있는 연결 설정/관리 |
| 인터넷 계층 | 3 | IP 패킷 라우팅 및 주소 지정 |
| 네트워크 인터페이스 | 1~2 | 프레임 구조화/물리 송수신, MAC 주소 지정 |
TCP/IP 연결 과정 세부 설명
-
물리/네트워크 인터페이스 계층(1~2계층)
- NIC가 데이터 비트를 신호로 변환, 케이블/무선 송수신.
- 프레임 작성 및 오류 감지, MAC 주소로 목적지 지정
-
인터넷 계층(3계층)
- IP주소로 패킷 생성, 라우터 통해 최종 서버까지 전달.
- 라우터는 목적지 IP를 보고 최적 경로로 패킷 포워딩.
-
전송 계층(4계층)
- TCP 3-way handshake로 연결 형성
- 클라이언트가 SYN 패킷을 서버의 IP/Port로 전송
- 서버가 SYN-ACK 응답
- 클라이언트가 ACK 전송
- 연결 성립 후에는 오류 제어/흐름제어/재전송 처리
- TCP 3-way handshake로 연결 형성
-
응용 계층(5계층, 4계층 모델에서는 4번째)
- 클라이언트 응용이(예: HTTP GET 요청) 서버로 데이터 전송
- 서버가 요청을 받아 처리 및 응답
3. 연결에 관여하는 주요 하드웨어
클라이언트 측 하드웨어
- 응용프로그램: 데이터 생성(웹브라우저 등)
- 운영체제 네트워크 스택: TCP/IP 프로토콜 구현, 데이터 포장/해제
- NIC(네트워크카드): 디지털 데이터 → 신호 변환
- 전송 매체: 이더넷/광케이블/무선 등
네트워크 인프라 하드웨어
- 스위치: 2계층에서 프레임을 MAC 주소 기준으로 전달
- 라우터: 3계층에서 IP 패킷을 네트워크 간에 전달
- 방화벽/프록시: 패킷 검사 및 보안 정책 적용 (옵션)
서버 측 하드웨어
- 구조는 클라이언트와 유사
- NIC로 신호 수신 및 데이터 처리
- OS의 TCP/IP 스택 사용, 서버 프로그램이 클라이언트 요청 처리 후 응답
4. 일반적인 TCP/IP 클라이언트-서버 연결 단계별 과정
-
클라이언트 응용프로그램이 연결 요청
- 서버 IP/Port로 연결 요청
-
DNS 도메인 주소 해석
- 도메인 입력 시 IP주소 변환
-
전송 계층: TCP 3-way 핸드셰이크
- 클라이언트 → SYN, 서버 → SYN-ACK, 클라이언트 → ACK 순으로 송수신
-
데이터링크/물리 계층
- 데이터가 이더넷 프레임, 신호로 송수신됨
- 스위치/라우터를 거쳐 서버 도달
-
서버가 요청 처리
- OS가 패킷을 해제, 서버 응용프로그램이 요청 처리
-
서버가 응답 송신
- 서버에서 동일 계층 과정을 통해 데이터 전송
-
연결 종료
- FIN 플래그로 연결 정상 종료 (TCP)
요약 표
| 계층 | 연결에서의 주요 역할 | 관련 하드웨어 |
|---|---|---|
| 물리(1) | 신호 전송/수신 | NIC, 케이블, 스위치, 라우터 |
| 데이터링크(2) | 프레임작성, MAC 주소지정 | NIC, 스위치, 브리지 |
| 네트워크(3) | IP주소지정/라우팅 | 라우터, OS의 IP 계층 |
| 전송(4) | 연결설정, 데이터신뢰성관리 | OS 네트워크 스택, NIC, TCP/UDP 구현 |
| 세션(5, OSI only) | 세션(대화) 생성, 관리, 종료 | OS 소프트웨어, OS 세션 관리, 서버 세션 모듈 |
| 표현(6) | 포맷 변환, 암호화, 압축 | OS 소프트웨어, 암호화 모듈, SSL/TLS 라이브러리 |
| 응용(7) | 사용자 앱, 네트워크 프로토콜 | 응용프로그램 |
즉, 클라이언트와 서버가 연결을 형성하는 과정은 여러 계층에서 하드웨어와 소프트웨어의 협업으로 이루어집니다. 신호의 송수신(물리/데이터링크), 주소지정과 라우팅(네트워크), 신뢰성 있는 연결 및 흐름관리(전송), 그리고 실제 데이터 송수신 및 세션관리(상위계층) 과정이 모두 유기적으로 동작합니다.